1. Field of the Invention
The present invention relates generally to the recording of data onto optical media, and more particularly to the recording engine and system that transfers data from source to destination in the recording operation.
2. Description of the Related Art
Optical disc storage of data offers relatively high capacity data storage (e.g., approximately 640 Megabytes) on a relatively small and inexpensive optical disc. Optical media recording commonly involves recording (sometimes referred to as “burning”) audio tracks or data files on one or more tracks on an optical disc, which can typically hold between 1 and 99 tracks. The high capacity of optical discs for data storage represents a tremendous advancement over prior art data storage such as the floppy disk which has a capacity of approximately 1.4 Megabytes. Conceivably, the trend will continue and optical discs will offer continually increasing storage capacities on similar sized or even smaller optical discs.
The process of burning, or recording data to an optical disc typically involves several data processing operations between the selection of data or audio files to be recorded and the recording of those files on an optical disc. A client application or software for the recording of data to optical media is used to accomplish the recording process. Selected data or audio files are located, examined, and sequenced in a recording order. A database of the selected data files is commonly generated. This database contains data structures necessary for identifying and locating a data file at its source, for designating the destination location, and for designating the order in which files will be recorded on the destination optical device.
Once the database has been generated, it is processed by the client application which creates memory data buffers that contain either structures describing the selected source content formatted according to one or more specified file system specifications, or data from the selected source files, and passes them to the recording engine. The recording engine takes these data buffers and, using the command set required to communicate with a specific optical recording device, issues the necessary commands and passes the appropriate data to the recording device to create the optical disc.
FIG. 1 shows a block diagram 100 of a typical prior art recording process. A client application 110 programmed to select and process data for recording to optical media initiates the recording process. The client application 110 communicates to the recording engine 140 that it wants to record data to optical media. The recording engine 140 acknowledges that it is configured to record, and the client application 110 begins assembling a file system data base 120. The client application 110 through the file system data base 120 identifies the data source 130 and designates the data structures to be created in the file system data base 120. The data identified to be recorded is sequenced in a writing order in the file system data base 120, those data files that will be cached for the recording process are identified, and the necessary data structures are created. Portions of the file system data base 120 (e.g., writing order, pointers to the data to be recorded, etc.) are passed to the CD recording engine 140 where the information is further processed in preparation for the burn operation.
When an actual or simulated burn is executed, the CD recording engine 140 reads the selected data into a buffer in system memory 150. From the buffer in system memory 150, the CD recording engine 140 directs the flow of data through optical CD recording circuitry to the destination optical device 170. As data is read out of the buffer in system memory 150 and recorded on the destination optical device 170, more data is read into the buffer 150 until all of the selected data has been read, recorded and the burn operation is complete.
The recording operation in prior art requires repeated processing of the selected data and associated data structures, and consumes significant system resources that are typically shared with all applications running in a host system. With the increasing speed of optical media recording devices, the rate of recording onto the optical disc frequently exceeds the rate at which the hard drive data source can replenish data in the buffer memory. A buffer under-run occurs when the buffer memory is unable to continuously provide data for an uninterrupted recording of the files to a given track of the optical disc. Eventually, after the buffer under-run occurs, the burning stops.
In view of the foregoing, there is a need for a method, apparatus and system for the recording of data to optical media that is more closely integrated with the host operating system. The method and system should be able to minimize the processing of data selected for recording, and then burn data to optical media in such a manner as to avoid buffer under-run and data interruption. This method and system should be configured to avoid the problems of the prior art.